The invention relates generally to a computer system and performance tuning method used for tuning the I/O performance of a storage system.
In line with developments in computer systems, uses for storage systems have diversified. With that diversification, the characteristics (I/O characteristics) of input/output requests (I/O requests) host computers issue to storage systems have also diversified. In order to improve the performance of the storage systems in relation to I/O requests with various I/O characteristics, it is effective to carry out performance tuning suitable for the respective I/O characteristics. For example, Japanese Patent Laid-Open Publication No. 2000-293317 proposes a storage system being able to improve the I/O performance, even when an I/O request a host computer issues is a sequential access or when the I/O request is a random access and the cache hit rate is low.
Usually, users who design or use computer systems know the I/O characteristics of the application programs operating on host computers. Accordingly, the users carry out performance tuning for the storage systems based on the I/O characteristics of the I/O requests issued by the application programs.
However, the application-level I/O characteristics the users can easily be aware of are sometimes different from the I/O characteristics of the I/O requests the storage systems receive from the host computers. This is because the I/O characteristics of the I/O requests issued by the host computers change when affected by the operating systems, file systems, device drivers, and host bus adapters (hereinafter called “OS/FS/driver/HBAs”) in the host computers. For example, there are cases where, with the buffer size in an operating system being limited, an I/O request issued by an application program is divided into a plurality of I/O requests, or cases where even though the application program makes an access to a file of extremely large size, the I/O request is divided into a plurality of small-sized I/O requests in the file system.
There are also some cases where the operating systems or file systems function to improve the I/O performance in terms of cache hits by reading ahead data from a read target range wider than the read target range designated by the I/O requests issued by the application programs, or issue I/O requests with less I/O multiplicity than the I/O requests issued by the application programs, because the I/O multiplicity is limited owing to the hardware specifications of the host bus adapters in the host computers.
As described above, although there are differences between the application-level I/O characteristics the users can easily be aware of and the I/O characteristics of I/O requests the storage systems receive from the host computers, the users often carry out performance tuning for the storage systems based on the application-level I/O characteristics. Accordingly, the performance of the storage systems degrade due to their inappropriate performance tuning.
Moreover, the characteristics of the I/O requests the host computers issue to the storage systems have become complicated and they change not only when the application programs in the host computers are changed, but also when the OS/FS/driver/HBAs in the host computers are changed. Therefore, it is necessary to carry out performance tuning for the storage systems by taking into consideration the effect(s) the OS/FS/driver/HBAs in the host computers have on the I/O requests issued by the application programs.
Furthermore, because client storage systems operate continuously in most cases, it is difficult to test the effect of improvement of the performance tuning for their storage systems.
Therefore, it is an object of this invention to carry out performance tuning for a storage system while taking into consideration the effect the OS/FS/driver/HBAs in a host computer have on I/O requests issued by an application program.